package br.senai.mb;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

import br.senai.entidade.Estado;
import br.senai.modelo.EstadoDAO;
import br.senai.modelo.impl.EstadoDAOImpl;

@ManagedBean(name = "estadoMB")
@ViewScoped
public class EstadoMB extends ManagedBeanBase implements Serializable {
	
	private static final long serialVersionUID = 1L;

	private Estado estado;
	private List<Estado> estados;

	public EstadoMB() {
		listar();
	}

	private void listar() {
		EstadoDAO estadoDAO = (EstadoDAO) createPersistence(EstadoDAOImpl.class);
		estados = estadoDAO.getLista();
	}

	public void salvar(ActionEvent event) {
		
		if (validarDados()) {
			EstadoDAO estadoDAO = (EstadoDAO) createPersistence(EstadoDAOImpl.class);
			estadoDAO.salvar(estado);
			listar();
			execute("modalForm.hide();");
		}
	}

	private boolean validarDados() {

		if (estado.getNome() == null || estado.getNome().isEmpty()) {
			addErrorMessage("Preencha o campo Nome", "");
			return false;
		} 
		
		else if (estado.getUf() == null || estado.getUf().isEmpty()) {
			addErrorMessage("Preencha o campo UF", "");
			return false;
		}

		return true;
	}

	public void excluir() {
		try {
			EstadoDAO estadoDAO = (EstadoDAO) createPersistence(EstadoDAOImpl.class);
			estadoDAO.remover(Estado.class, estado.getId());
		} catch (Exception e) {
			addErrorMessage("Esse registro está sendo usado", "");
			e.printStackTrace();
		}
	}
	
	public void novoEstado(ActionEvent event) {
		estado = new Estado();
	}
	
	public Estado getEstado() {
		return estado;
	}
	public void setEstado(Estado estado) {
		this.estado = estado;
	}
	public List<Estado> getEstados() {
		return estados;
	}
	public void setEstados(List<Estado> estados) {
		this.estados = estados;
	}	
	
}
